home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / HyperXCmd.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  11.3 KB  |  292 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        HyperXCmd.p
  3.  
  4.      Contains:    Interfaces for HyperCard XCMD's
  5.  
  6.      Version:    Technology:    HyperCard 2.3
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1987-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT HyperXCmd;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __HYPERXCMD__}
  28. {$SETC __HYPERXCMD__ := 1}
  29.  
  30. {$I+}
  31. {$SETC HyperXCmdIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __MACTYPES__}
  35. {$I MacTypes.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __FP__}
  38. {$I fp.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __EVENTS__}
  41. {$I Events.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __TEXTEDIT__}
  44. {$I TextEdit.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __MENUS__}
  47. {$I Menus.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __STANDARDFILE__}
  50. {$I StandardFile.p}
  51. {$ENDC}
  52.  
  53.  
  54. {$PUSH}
  55. {$ALIGN MAC68K}
  56. {$LibExport+}
  57.  
  58. { result codes }
  59.  
  60. CONST
  61.     xresSucc                    = 0;
  62.     xresFail                    = 1;
  63.     xresNotImp                    = 2;
  64.  
  65. { XCMDBlock constants for event.what... }
  66.     xOpenEvt                    = 1000;                            {  the first event after you are created  }
  67.     xCloseEvt                    = 1001;                            {  your window is being forced close (Quit?)  }
  68.     xGiveUpEditEvt                = 1002;                            {  you are losing Edit...  }
  69.     xGiveUpSoundEvt                = 1003;                            {  you are losing the sound channel...  }
  70.     xHidePalettesEvt            = 1004;                            {  someone called HideHCPalettes  }
  71.     xShowPalettesEvt            = 1005;                            {  someone called ShowHCPalettes  }
  72.     xEditUndo                    = 1100;                            {  Edit——Undo  }
  73.     xEditCut                    = 1102;                            {  Edit——Cut  }
  74.     xEditCopy                    = 1103;                            {  Edit——Copy  }
  75.     xEditPaste                    = 1104;                            {  Edit——Paste  }
  76.     xEditClear                    = 1105;                            {  Edit——Clear  }
  77.     xSendEvt                    = 1200;                            {  script has sent you a message (text)  }
  78.     xSetPropEvt                    = 1201;                            {  set a window property  }
  79.     xGetPropEvt                    = 1202;                            {  get a window property  }
  80.     xCursorWithin                = 1300;                            {  cursor is within the window  }
  81.     xMenuEvt                    = 1400;                            {  user has selected an item in your menu  }
  82.     xMBarClickedEvt                = 1401;                            {  a menu is about to be shown--update if needed  }
  83.     xShowWatchInfoEvt            = 1501;                            {  for variable and message watchers  }
  84.     xScriptErrorEvt                = 1502;                            {  place the insertion point  }
  85.     xDebugErrorEvt                = 1503;                            {  user clicked "Debug" at a complaint  }
  86.     xDebugStepEvt                = 1504;                            {  hilite the line  }
  87.     xDebugTraceEvt                = 1505;                            {  same as step but tracing  }
  88.     xDebugFinishedEvt            = 1506;                            {  script ended  }
  89.  
  90.     paletteProc                    = 2048;                            {  Windoid with grow box  }
  91.     palNoGrowProc                = 2052;                            {  standard Windoid defproc  }
  92.     palZoomProc                    = 2056;                            {  Windoid with zoom and grow  }
  93.     palZoomNoGrow                = 2060;                            {  Windoid with zoom and no grow  }
  94.  
  95.     hasZoom                        = 8;
  96.     hasTallTBar                    = 2;
  97.     toggleHilite                = 1;
  98.  
  99. { paramCount is set to these constants when first calling special XThings }
  100.     xMessageWatcherID            = -2;
  101.     xVariableWatcherID            = -3;
  102.     xScriptEditorID                = -4;
  103.     xDebuggerID                    = -5;
  104.  
  105. { XTalkObjectPtr->objectKind values }
  106.     stackObj                    = 1;
  107.     bkgndObj                    = 2;
  108.     cardObj                        = 3;
  109.     fieldObj                    = 4;
  110.     buttonObj                    = 5;
  111.  
  112. { selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
  113.     errorDlgID                    = 1;                            {  1:OK (default)  }
  114.     confirmDlgID                = 2;                            {  1:OK (default) and 2:Cancel  }
  115.     confirmDelDlgID                = 3;                            {  1:Cancel (default) and 2:Delete  }
  116.     yesNoCancelDlgID            = 4;                            {  1:Yes (default), 2:Cancel, and 3:No  }
  117.  
  118.  
  119. { type definitions }
  120.  
  121. TYPE
  122.     XCmdBlockPtr = ^XCmdBlock;
  123.     XCmdBlock = RECORD
  124.         paramCount:                INTEGER;                                {  If = -1 then new use for XWindoids  }
  125.         params:                    ARRAY [1..16] OF Handle;
  126.         returnValue:            Handle;
  127.         passFlag:                BOOLEAN;
  128.         filler1:                SignedByte;
  129.         entryPoint:                UniversalProcPtr;                        {  to call back to HyperCard  }
  130.         request:                INTEGER;
  131.         result:                    INTEGER;
  132.         inArgs:                    ARRAY [1..8] OF LONGINT;
  133.         outArgs:                ARRAY [1..4] OF LONGINT;
  134.     END;
  135.  
  136.     XCmdPtr                                = ^XCmdBlock;
  137.  
  138.     XWEventInfoPtr = ^XWEventInfo;
  139.     XWEventInfo = RECORD
  140.         event:                    EventRecord;
  141.         eventWindow:            WindowPtr;
  142.         eventParams:            ARRAY [1..9] OF LONGINT;
  143.         eventResult:            Handle;
  144.     END;
  145.  
  146.     XTalkObjectPtr = ^XTalkObject;
  147.     XTalkObject = RECORD
  148.         objectKind:                INTEGER;                                {  stack, bkgnd, card, field, or button  }
  149.         stackNum:                LONGINT;                                {  reference number of the source stack  }
  150.         bkgndID:                LONGINT;
  151.         cardID:                    LONGINT;
  152.         buttonID:                LONGINT;
  153.         fieldID:                LONGINT;
  154.     END;
  155.  
  156. { maximum number of checkpoints in a script }
  157.  
  158. CONST
  159.     maxCachedChecks                = 16;
  160.  
  161.  
  162. TYPE
  163.     CheckPtsPtr = ^CheckPts;
  164.     CheckPts = RECORD
  165.         checks:                    ARRAY [1..16] OF INTEGER;
  166.     END;
  167.  
  168.     CheckPtPtr                            = ^CheckPts;
  169.     CheckPtHandle                        = ^CheckPtPtr;
  170. {
  171.         HyperTalk Utilities  
  172. }
  173. FUNCTION EvalExpr(paramPtr: XCmdPtr; expr: Str255): Handle;
  174. PROCEDURE SendCardMessage(paramPtr: XCmdPtr; msg: Str255);
  175. PROCEDURE SendHCMessage(paramPtr: XCmdPtr; msg: Str255);
  176. PROCEDURE RunHandler(paramPtr: XCmdPtr; handler: Handle);
  177. {
  178.         Memory Utilities  
  179. }
  180. FUNCTION GetGlobal(paramPtr: XCmdPtr; globName: Str255): Handle;
  181. PROCEDURE SetGlobal(paramPtr: XCmdPtr; globName: Str255; globValue: Handle);
  182. PROCEDURE ZeroBytes(paramPtr: XCmdPtr; dstPtr: UNIV Ptr; longCount: LONGINT);
  183. {
  184.         String Utilities  
  185. }
  186. PROCEDURE ScanToReturn(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  187. PROCEDURE ScanToZero(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  188. FUNCTION StringEqual(paramPtr: XCmdPtr; str1: Str255; str2: Str255): BOOLEAN;
  189. FUNCTION StringLength(paramPtr: XCmdPtr; strPtr: UNIV Ptr): LONGINT;
  190. FUNCTION StringMatch(paramPtr: XCmdPtr; pattern: Str255; target: UNIV Ptr): Ptr;
  191. PROCEDURE ZeroTermHandle(paramPtr: XCmdPtr; hndl: Handle);
  192. {
  193.         String Conversions  
  194. }
  195. PROCEDURE BoolToStr(paramPtr: XCmdPtr; value: BOOLEAN; VAR str: Str255);
  196. PROCEDURE Double_tToStr(paramPtr: XCmdPtr; num: double_t; VAR str: Str255);
  197. PROCEDURE LongToStr(paramPtr: XCmdPtr; posNum: LONGINT; VAR str: Str255);
  198. PROCEDURE NumToHex(paramPtr: XCmdPtr; num: LONGINT; nDigits: INTEGER; VAR str: Str255);
  199. PROCEDURE NumToStr(paramPtr: XCmdPtr; num: LONGINT; VAR str: Str255);
  200. FUNCTION PasToZero(paramPtr: XCmdPtr; str: Str255): Handle;
  201. PROCEDURE PointToStr(paramPtr: XCmdPtr; pt: Point; VAR str: Str255);
  202. PROCEDURE RectToStr(paramPtr: XCmdPtr; {CONST}VAR rct: Rect; VAR str: Str255);
  203. PROCEDURE ReturnToPas(paramPtr: XCmdPtr; zeroStr: UNIV Ptr; VAR pasStr: Str255);
  204. FUNCTION StrToBool(paramPtr: XCmdPtr; str: Str255): BOOLEAN;
  205. FUNCTION StrToDouble_t(paramPtr: XCmdPtr; str: Str255): double_t;
  206. FUNCTION StrToLong(paramPtr: XCmdPtr; str: Str255): LONGINT;
  207. FUNCTION StrToNum(paramPtr: XCmdPtr; str: Str255): LONGINT;
  208. PROCEDURE StrToPoint(paramPtr: XCmdPtr; str: Str255; VAR pt: Point);
  209. PROCEDURE StrToRect(paramPtr: XCmdPtr; str: Str255; VAR rct: Rect);
  210. PROCEDURE ZeroToPas(paramPtr: XCmdPtr; zeroStr: UNIV Ptr; VAR pasStr: Str255);
  211. {
  212.         Field Utilities  
  213. }
  214. FUNCTION GetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
  215. FUNCTION GetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255): Handle;
  216. FUNCTION GetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
  217. PROCEDURE SetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
  218. PROCEDURE SetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255; fieldVal: Handle);
  219. PROCEDURE SetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
  220. FUNCTION GetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldNum: INTEGER; fieldName: Str255): TEHandle;
  221. PROCEDURE SetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldNum: INTEGER; fieldName: Str255; fieldTE: TEHandle);
  222. {
  223.         Miscellaneous Utilities  
  224. }
  225. PROCEDURE BeginXSound(paramPtr: XCmdPtr; window: WindowPtr);
  226. PROCEDURE EndXSound(paramPtr: XCmdPtr);
  227. FUNCTION GetFilePath(paramPtr: XCmdPtr; fileName: Str255; numTypes: INTEGER; typeList: ConstSFTypeListPtr; askUser: BOOLEAN; VAR fileType: OSType; VAR fullName: Str255): BOOLEAN;
  228. PROCEDURE GetXResInfo(paramPtr: XCmdPtr; VAR resFile: INTEGER; VAR resID: INTEGER; VAR rType: ResType; VAR name: Str255);
  229. PROCEDURE Notify(paramPtr: XCmdPtr);
  230. PROCEDURE SendHCEvent(paramPtr: XCmdPtr; {CONST}VAR event: EventRecord);
  231. PROCEDURE SendWindowMessage(paramPtr: XCmdPtr; windPtr: WindowPtr; windowName: Str255; msg: Str255);
  232. FUNCTION FrontDocWindow(paramPtr: XCmdPtr): WindowPtr;
  233. FUNCTION StackNameToNum(paramPtr: XCmdPtr; stackName: Str255): LONGINT;
  234. FUNCTION ShowHCAlert(paramPtr: XCmdPtr; dlgID: INTEGER; promptStr: Str255): INTEGER;
  235. FUNCTION AbortInQueue(paramPtr: XCmdPtr): BOOLEAN;
  236. PROCEDURE FlushStackFile(paramPtr: XCmdPtr);
  237. {
  238.         Creating and Disposing XWindoids  
  239. }
  240. FUNCTION NewXWindow(paramPtr: XCmdPtr; {CONST}VAR boundsRect: Rect; title: Str255; visible: BOOLEAN; procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  241. FUNCTION GetNewXWindow(paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  242. PROCEDURE CloseXWindow(paramPtr: XCmdPtr; window: WindowPtr);
  243. {
  244.         XWindoid Utilities  
  245. }
  246. PROCEDURE HideHCPalettes(paramPtr: XCmdPtr);
  247. PROCEDURE ShowHCPalettes(paramPtr: XCmdPtr);
  248. PROCEDURE RegisterXWMenu(paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
  249. PROCEDURE SetXWIdleTime(paramPtr: XCmdPtr; window: WindowPtr; interval: LONGINT);
  250. PROCEDURE XWHasInterruptCode(paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
  251. PROCEDURE XWAlwaysMoveHigh(paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
  252. PROCEDURE XWAllowReEntrancy(paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  253. {
  254.         Text Editing Utilities  
  255. }
  256. PROCEDURE BeginXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
  257. PROCEDURE EndXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
  258. FUNCTION HCWordBreakProc(paramPtr: XCmdPtr): WordBreakUPP;
  259. PROCEDURE PrintTEHandle(paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
  260. {
  261.         Script Editor support  
  262. }
  263. FUNCTION GetCheckPoints(paramPtr: XCmdPtr): CheckPtHandle;
  264. PROCEDURE SetCheckPoints(paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  265. PROCEDURE FormatScript(paramPtr: XCmdPtr; scriptHndl: Handle; VAR insertionPoint: LONGINT; quickFormat: BOOLEAN);
  266. PROCEDURE SaveXWScript(paramPtr: XCmdPtr; scriptHndl: Handle);
  267. PROCEDURE GetObjectName(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; VAR objName: Str255);
  268. PROCEDURE GetObjectScript(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; VAR scriptHndl: Handle);
  269. PROCEDURE SetObjectScript(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; scriptHndl: Handle);
  270. {
  271.         Debugging Tools support  
  272. }
  273. PROCEDURE AbortScript(paramPtr: XCmdPtr);
  274. PROCEDURE GoScript(paramPtr: XCmdPtr);
  275. PROCEDURE StepScript(paramPtr: XCmdPtr; stepInto: BOOLEAN);
  276. PROCEDURE CountHandlers(paramPtr: XCmdPtr; VAR handlerCount: INTEGER);
  277. PROCEDURE GetHandlerInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; VAR handlerName: Str255; VAR objectName: Str255; VAR varCount: INTEGER);
  278. PROCEDURE GetVarInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; VAR varName: Str255; VAR isGlobal: BOOLEAN; VAR varValue: Str255; varHndl: Handle);
  279. PROCEDURE SetVarValue(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; varHndl: Handle);
  280. FUNCTION GetStackCrawl(paramPtr: XCmdPtr): Handle;
  281. PROCEDURE TraceScript(paramPtr: XCmdPtr; traceInto: BOOLEAN);
  282. {$ALIGN RESET}
  283. {$POP}
  284.  
  285. {$SETC UsingIncludes := HyperXCmdIncludes}
  286.  
  287. {$ENDC} {__HYPERXCMD__}
  288.  
  289. {$IFC NOT UsingIncludes}
  290.  END.
  291. {$ENDC}
  292.